package SparkStreamingKafka

import java.util.{Properties, Random}
import org.apache.kafka.clients.producer.{KafkaProducer, ProducerRecord}
/**
  * 随机单词生成器
  * SparkStreaming与Kafka整合
  * 1：启动zkServer.start
  * 2：启动kafka-server-start.sh  /config/server.properties
  * 3：在Kafka集群中创建主题（或者通过写一个Producer创建主题，若当前主题没有，则自动创建）
  * 4：写一个Producer主题随机发送a-z的单词
  * 5：写一个Streaming从Kafka的主题消费数据
  * 6：对接收的数据进行切分做wordCount统计
  * 7：将算好的当前批次的wordCount存储到redis
  */
object RandomWordGenerator {

  def main(args: Array[String]): Unit = {
    val props = new Properties()
    //告诉客户端，Kafka服务器在哪里
    props.setProperty("bootstrap.servers", " ")
    //设置Key和value的序列化方式
    props.setProperty("key.serializer", "org.apache.kafka.common.serialization.StringSerializer")
    //[all,-1,0,1]
    props.setProperty("acks", "1")

    val producerClient = new KafkaProducer[String, String](props)
    while (true) {
      Thread.sleep(100)
      val wordIndex = new Random().nextInt(26)
      val assiCode = (wordIndex + 97).asInstanceOf[Char]

      val word = String.valueOf(assiCode)

      val record = new ProducerRecord[String, String]("wordcount", word, word)
      producerClient.send(record)
    }
  }
}
